\chapter{Estudo de Caso}
\label{cap:casodeuso}
Neste capítulo é descrito o estudo de caso realizado com o ZooClouS no
ZooNimbus. Para isto, foram federadas nuvens privadas e públicas para a criação
de um ambiente de nuvens voltado para a execução de aplicações de
bioinformática. Foram realizados diversos estudos de caso envolvendo o ZooClouS.
Na Seção~\ref{sec:tempo} estão os testes realizados com relação ao tempo de
decisão que o ZooClouS atinge para escolher o melhor destino para um arquivo.
Na Seção~\ref{sec:pipeline} teste realizado para comprovar a melhoria no tempo
de execução de tarefas utilizando o Bowtie~\cite{bowtie2009}, na arquitetura
ZooNimbus, provando que quanto mais recursos, mais rápido é a execução das
tarefas.

\section{Tempo de Decisão e Transferência}
\label{sec:tempo}
Em um ambiente de federação de nuvens, são encontrados vários servidores
oferecendo espaço em disco para armazenar arquivos, e vários usuários enviando e
solicitando arquivos contidos na federação. Com base neste cenário, foram
realizados testes para identificar e medir o tempo de resposta que o ZooClouS
emite para as requisições que são feitas ao ZooNimbus. Para isto foi criado um
ambiente de execução detalhado na Seção~\ref{subsec:ambiente1}.

\subsection{Ambiente de Execução}
\label{subsec:ambiente1}
Para o estudo de caso do tempo de decisão do ZooClouS, foi
criada uma federação com três nuvens, as quais são:
\begin{itemize}
  \item Uma nuvem na Universidade de Brasília, com três computadures e com as
  seguintes configurações, processador Core i7-3770 de 3,4 GHz, memória RAM de
  8Gb, 2TB de disco rígido, com o sistema operacional Linux, distribuição
  Ubuntu 13.04. Essa nuvem está fisicamente localizada no Brasil;
  \item Uma nuvem na Microsoft Azure~\cite{microsoft2012}, com três máquinas
  com 8 núcleos, 14Gb de RAM e disco rígido de 30Gb, com sistema operacional
  Linux, distribuição Ubuntu 12.04 LTS, cada. A nuvem está localizada na Ásia
  Oriental;
  \item Uma nuvem na Amazon~\cite{amazon2012},
  com três máquinas com processador Intel Xeon 2.4 Ghz, 613MB de memória
  RAM, disco rígido de 80GB e sistema operacional Linux, distribuição Ubuntu 12.04.2.
  A nuvem está localizada nos EUA.
\end{itemize}

\subsection{Escolha do Melhor Servidor para os Arquivos}
\label{subsec:estudotempo}
Para o estudo da escolha do melhor servidor para o arquivo, foram feitas
requisições de {\it upload} para se conhecer em qual local o ZooClouS enviará os
arquivos devido a localidade de quem requisitou o envio e dos servidores
disponíveis.

Foram realizados nove requisições de {\it upload} vindas de um cliente com um
computador localizado no Brasil, sendo que foram feitos nove envios para a
versão anterior do ZooNimbus (BioNimbus), onde o tratamento e a escolha do
melhor servidor para receber os arquivos eram inexistentes, os arquivos eram
inseridos na federação de forma aleatória, onde a escolha era feita de acordo
com o endereço que o cliente conhecesse.

Logo após, foram feitos mais nove envios com a política de armazenamento
ZooClouS, com um arquivo de 70 megabytes de tamanho, do tipo binário.
Os resultados deste teste são mostrados na Figura~\ref{fig:escolhadestino}.

\begin{figure}[H]
		\centering
		\includegraphics[width=13cm, height=5cm]{imagens/escolhadestino.jpg}
		\caption{Destino de Arquivo Enviado ao ZooNimbus com a Implementação da ZooClouS, e sem a Implementação da ZooClouS.}
		\label{fig:escolhadestino}
\end{figure}

Conforme mostrado na Figura~\ref{fig:escolhadestino}, com a ZooClouS,
observou-se que em 67\% dos envios, o arquivo foi enviado para a nuvem
localizada no Brasil e 33\% para a nuvem nos EUA. 
Com a política de armazenamento aleatória, 56\% dos envios resultaram na nuvem
localizada na Ásia, que encontra-se mais distante da origem do arquivo, e apenas
11\% resultaram no Brasil, local que está mais perto do local onde o arquivo foi
enviado. Com um servidor mais distante escolhido de quem envia o arquivo, uma
latência e um tempo de transferência maiores são gastos no {\it upload}.

Esses resultados demonstram que o ZooClouS, com base no cálculo de custo
feito, envia o arquivo para os servidores que estiverem mais próximos de quem
solicita o envio, pois a latência é menor quando a origem e o destino estão mais
próximos geograficamente. Como a política considera a latência como fator mais
importante, o resultado do tratamento é o envio do arquivo ao servidor mais
próximo possível do cliente. Foram observados durante os testes, que a latência
entre o solicitante no Brasil e os servidores ZooNimbus localizados nos EUA
diferenciavam em poucos milissegundos, fazendo com que o espaço livre em disco e
o tempo de disponibilidade tornassem os fatores decisivos na escolha do melhor
servidor.

A partir dos resultados da escolha de envio do arquivo, foi medido o tempo de
transferência de um arquivo que foi enviado ao ZooNimbus e tratado com a
ZooClouS. O tempo encontrado foi comparado com o tempo de transferência
encontrado nos envios de arquivos feito ao ZooNimbus utilizando a forma
aleatória presente na sua antiga versão (BioNimbus). A
Figura~\ref{fig:tempomedio} demonstra o tempo médio obtido na transferência dos
{\it uploads} realizados.

\begin{figure}[H]
		\centering
		\includegraphics[width=14cm, height=7cm]{imagens/tempomedio.jpg}
		\caption{Tempo Médio de Transferência de Arquivo com o ZooClouS e de Forma Aleatória.}
		\label{fig:tempomedio}
\end{figure}

Como o ZooClouS escolhe os servidores de destino mais próximos de quem solicita
o envio do arquivo, a transferência de dados torna-se mais rápida, fazendo com
que a banda e os recursos utilizados na transferência de um arquivo sejam
liberados com mais velocidade. A taxa de transferência média foi calculada com
base no tempo médio de transferência do arquivo nas nove operações realizadas em
cada algoritmo. Comparando a implementação do ZooClouS com a forma anterior de
envio, o tempo de transferência foi melhorado em cerca de 65\%.
Na Seção~\ref{sec:pipeline} estão os testes feitos para a execução de um {\it
pipeline} dentro do ZooClous.

\section{Execução de Tarefas}
\label{sec:pipeline}
 Para os testes de execução de tarefas foram utilizadas duas federações,
 uma localizada na Universidade de Brasília (UnB) e outra na Amazon, ambas com
 três máquinas, estes testes foram realizados utilizando dados de
 bioinformática, dados descritos na Subseção~\ref{subsec:ambiente2}.
 
\subsection{Ambiente de Execução}
\label{subsec:ambiente2}

Para realizar as verificações do tempo de execução total das tarefas enviadas
para o ZooNimbus, foi criado um conjunto de tarefas. As tarefas executadas para
os testes utilizaram a ferramenta Bowtie~\cite{bowtie2009}, uma ferramenta de
bioinformática, disponível como serviço nos servidores ZooNimbus.

Nesse cenário, foi criado um grupo de tarefas composto por cinco tarefas. Tais
tarefas tinham arquivos de entrada de diferentes tamanhos, variando de 178 até
252 MB cada, disponível em
ftp://ftp.ncbi.nih.gov/genomes/H\_sapiens/Assembled\_chromosomes/seq/, banco de
dados do NCBI~\cite{ncbi2013} . Os arquivos de entrada, que podem ser
visualizadas na Tabela~\ref{tab:dadosTarefa} com os seus respectivos tamanhos,
estavam presentes nos servidores ZooNimbus.

As tarefas foram enviadas para execução sequencial, e a medida do tempo de
execução total foi feita em segundos, onde seu tempo foi calculado entre o envio
da primeira tarefa para a execução e o tempo de finalização da última tarefa.
Foi enviado para execução o conjunto de tarefas que continham os arquivos de
entradas descritos na Tabela~\ref{tab:dadosTarefa}. Para cada arquivo de
entrada, havia um par de tarefas, totalizando cinco tarefas para o conjunto de
tarefas.

\begin{table}[H]
  \begin{center}
  \caption{Nomes e Tamanhos dos Arquivos de Entrada das Tarefas.}
    \begin{tabular}{|c|c|}
	\hline {\bf Nome} & {\bf Tamanho}\\  \hline
		hs\_alt\_HuRef\_chr1.fa & 252 MB \\ \hline
		hs\_alt\_HuRef\_chr2.fa & 247 MB \\ \hline	
		hs\_alt\_HuRef\_chr3.fa & 198 MB \\ \hline
		hs\_alt\_HuRef\_chr4.fa & 189 MB \\ \hline
		hs\_alt\_HuRef\_chr5.fa & 178 MB \\ \hline 	   										
	\end{tabular}	
    \label{tab:dadosTarefa}
  \end{center}
\end{table}

Para o estudo de caso do tempo de execução de uma tarefa utilizando dados
de bioinformática, foi criado um ambiente com uma federação que possui duas
nuvens, as quais são:
\begin{itemize}
  \item Uma nuvem na Universidade de Brasília, localizada no Brasil, com três
  computadores com processadores Core i7-3770 de 3,4 GHz, memória RAM de 8Gb,
  2TB de disco rígido, sistema operacional Linux, distribuição Ubuntu 13.04.
  Nuvem fisicamente localizada no Brasil;
  \item Uma nuvem na Amazon~\cite{amazon2012},
  com três máquinas virtuais que possuem as seguintes configurações: processador
  Intel Xeon 2.4 Ghz, 613MB de memória RAM, disco rígido de 80GB e sistema
  operacional Linux, distribuição Ubuntu 12.04.2. Nuvem localizada nos EUA.
\end{itemize}

\subsection{Resultados Obtidos}
\label{subsec:resultadosobtidos}

Com o ambiente descrito na Subseção~\ref{subsec:ambiente2}, foram definidos
cinco tarefas com os arquivos de bioinformática citados anteriormente na
Subseção~\ref{subsec:ambiente2}.
Foram realizadas duas execuções, uma com a nuvem localizada na Universidade de
Brasília e a outra execução com a nuvem criada na Amazon integrada com a nuvem
da UnB, ambas com o ZooClouS. Na primeira execução, foi utilizado apenas
um servidor ZooKeeper para gerenciar os dados das nuvens. No segundo caso,
observou-se durante os testes, que com mais servidores ZooKeeper o tempo de
escalonamento e execução das tarefas tornou-se mais rápido, portanto foram
levantados três servidores ZooKeeper, um na nuvem da UnB e os outros dois na
nuvem da Amazon. A Figura~\ref{fig:pipeline} mostra os resultados obtidos nos
testes realizados.

\begin{figure}[H]
		\centering
		\includegraphics[width=14cm, height=10cm]{imagens/pipeline.jpg}
		\caption{Tempo de Execução de Tarefas com o ZooNimbus.}
		\label{fig:pipeline}
\end{figure}

No ambiente montado com as nuvens da UnB e Amazon, nota-se que a execução das
tarefas tornou-se mais rápida, devido a quantidade maior de recursos
disponiveis.
Na nuvem criada somente na UnB, o tempo total de execução das cinco tarefas foi
de 401 segundos. Na integração com a Amazon o tempo total foi de 190 segundos, o
que resultou em uma execução 53\% mais rápida.

\section{Considerações Finais}
\label{sec:consideracoes}

 De acordo com os testes analisados neste capítulo, chega-se a conclusão de que
 ao se utilizar a política de armazenamento para uma arquitetura de federação em
 nuvens, o ZooClouS. Tanto o tempo de transferência do arquivo, quanto a
 localidade onde os dados são armazenados, observou-se que tais dados são
 armazenados nas localidades mais próximas do cliente, no qual a latência é
 menor, concluindo assim, que o tempo de transferência utilizando o ZooClous
 reduz em relação ao tempo de transferência utilizado pelo ZooNimbus com uma
 política de armazenamento na qual existia anteriormente na versão BioNimbus,
 onde o cliente enviava o arquivo para aquele servidor o qual o mesmo conhecia o
 endereço, de forma aleatória, pois a conexão era feita de acordo com qualquer
 endereço que o cliente possua.
 Com as mudanças realizadas na arquitetura e para comprovar que quanto mais
 recursos a arquitetura possuir, mais rápido ocorre a execução de tarefas
 utilizando a aplicação Bowtie~\cite{bowtie2009}, como observado no gráfico da
